讲师专访丨中国银联周家晶:混合数据库当道,自研分布式数据库的实践
由云和恩墨主办的「DTC 2019之线上数据库技术实战峰会」每周都会邀请业内外技术大咖进行一小时的线上直播主题分享,本期我们邀请到了中国银联团队主管周家晶老师,带来题为《银联自研分布式数据库实践》的分享,活动信息如下:
演讲时间:2019年6月13日 20: 00-21: 00(含5分钟答疑)
演讲形式:线上直播分享、PPT+演讲
报名地址:https://cs.enmotech.com/event/32
平台支持:墨天轮(cs.enmotech.com)
关于DTC:Data Technology Carnival,数据技术嘉年华
中国银联团队主管:周家晶
专注分布式后台联机系统研发工作,2014年起从事 MySQL 研发工作,负责打造银联自主分布式中间件相关产品,并参与周边产品的研发工作。
演讲主题:《银联自研分布式数据库实践》
演讲介绍:面向数据库研发同行,介绍银联自主关系型分布式数据库 UPDRDB 的最新情况。UPDRDB 采用基于中间件与分布式存储引擎结合的技术方案,该方案通过较为经济的研发成本,实现了 OLTP 的高性能和完备的 SQL 支持,同时面对 OLAP 问题,采用了与 Spark SQL 适配的方案,进一步丰富了产品的技术应用领域。
面向人群:数据库领域从业者、爱好者,希望深入了解数据库核心技术的DBA、大数据架构师、数据架构师、技术leader等。
“在正式分享之前,我们对周老师进行了一次专访,以期大家认识讲师,以及知悉大概的背景,初探银联自研分布式数据库UPDRDB的开发设计及未来,以下为正文。”
DTC:请先和大讲堂的用户介绍一下您,以及您感兴趣的技术?
周家晶:大家好,我是来自中国银联的周家晶,目前任职科技事业部操作系统及数据库团队主管,11年入职后主要负责分布式联机交易系统的研发,14年开始参与银联自研数据库的研发工作,并负责中间件产品UPSQL Proxy的研发。我主要关注分布式数据库产品和相关技术,包括SQL、NOSQL、NewSQL等。很高兴今天能够参与这个活动,在线上与大家进行分享交流。我们的工作得到了不少业界朋友的帮助,也从社区吸取了不少经验和知识,所以也希望能够通过各种形式回馈社区。
DTC:目前您负责的团队主要在做什么事情?
周家晶:团队主要负责公司内数据库产品、操作系统产品的研发和支持工作,也有负责一些技术输出。数据库方面主要是基于开源定制、中间件产品研发以及数据流产品研发,有纯自研的,也有深度定制,同时也负责部分外部产品的测评等。
DTC:分布式数据库有着悠久的历史,从以Oracle RAC为代表的联机交易型分布式数据库,到IBM DB2 DPF统计分析性分布式数据库,能否谈谈您对分布式数据库的理解?
周家晶:分布式数据库概念比较宽泛,基于公司业务特征,我们更看重分布式架构下的扩展性、高可用性,所以在我们的实践中狭义的“分布式数据库”等同于shared-nothing架构,当然一些组件在满足高可用需求时可以是主从架构的。
DTC:是哪些因素促使银联将目光投向分库分表数据库UPDRDB的研究与开发的,而非使用开源相关的数据库,可否分享下分布式数据库UPDRDB的背景?
周家晶:银联投入UPDRDB的研发是有一定的现实需求的,一方面是在14年时,市面上没有一款满足银联业务需求的开源产品,一些闭源产品要价相对较高,同时公司内系统架构也在向分布式微服务化演进,对数据库层、公共服务层提出了一些挑战和要求,所以部门和公司领导决策自主进行相关研发工作,我也很幸运能参与公司的这一个进程,从而获得了不少成长。
DTC:从架构的角度,UPDRDB经历了哪些演进?它有哪些亮点?
周家晶:UPDRDB产品是一个不断迭代演化的产品,到目前为止呢有3个大的阶段:15年2月开始(UPSQL Proxy)一期研发、16年开始(UPSQL Proxy)二期研发、18年开始UPDRDB的研发工作。总体来看,我们的工作就是不断在求索:中间件架构的分布式数据库到底能走到什么程度。
所以,我们架构的特点就是挖掘代理层的性能极限,在这方面做了大量的工作,落脚到UPDRDB呢,我们进一步做了语句分类路由,为复杂语句提供了一个旁路子系统,实现了复杂语句的支持,并保证了事务性。现在我们的基本思路是Proxy作为核心组件在以后的功能研发中做减法,尽可能只包含核心关键功能,通过增加外围模块丰富整体功能。
DTC:您所负责的分布式数据库UPDRDB主要运用在哪些架构层面,在整个系统架构中承担着什么样的职责?
周家晶:目前UPDRDB相关产品,主要应用在银联联机系统,是系统的数据库层,未来可能会承担部分中台系统的访问请求,这方面我们还在探索。
DTC:在实现整个分布式数据库的系统的过程中也不可避免面临一些困难,比如分布式节点相关,您和您的团队遇到哪些技术难点,在这些阶段又是如何克服的?
周家晶:这个问题有些复杂,我觉得可以从两个方面来看,一方面我们是后来者,所以感谢不少同行帮我们趟过了不少坑,另一面我们是坚定的执行者,加上银联特殊的业务场景,我们能较早的面对一些问题,我们需要感谢各位同行还给我们留了不少难题,给我们留下了不少可以继续探索的工作,解决这些难题的过程,给我们团队带来了不少成长,增强了信心和能力,例如:一期我们就已经实现了对MySQL STMT协议的支持,不少相关产品是在近两年才具备,另外因为性能需要,我们实现了相似性SQL解析算法,提高了分库计算性能,目前大多数分布式数据库产品也都不具备。在二期研发中,我们主要遇到的技术难点是数据库连接池,设计一个全异步的连接池给我们带来了不少挑战,随后在三期(UPDRDB)中分布式存储引擎的研发给团队带来了巨大的压力,但很高兴的是借助年轻员工的创造力这些问题都被很好的解决了,所以现在我们也更关注如何挖掘新员工的主观能动性,总体来看创造力和野心是我们克服困难的核心能力。
DTC:经过多年的发展国内已有诸多的分布式数据库,腾讯TDSQL(DCDB)、阿里DRDS和PetaData(HybridDB for MySQL)、MariaDB Spider、PingCAP TiDB SequoiaDB 、亚马逊的Aurora和阿里PolarDB,您认为目前分布式数据库面临的挑战有哪些?
周家晶:总体来看数据库核心技术较难取得重大突破,特别是理论层面,更多的是如何服务好业务需求,所以分布式数据库最大的挑战就是如何保持自身的灵活性以支撑业务需求,现在混合数据库当道、一专多能,但是或许在各自领域做到极致依然是最佳的解法。
DTC:结合您多年的数据库开发经历,您认为分布式数据库的未来趋势是怎样的?
周家晶:根据最近的交流来看,存储计算分离与分布式数据库的结合是目前的首要工作,此外大数据技术融合、具备OLTP需求的分布式内存型数据库等都是值得关注的重点。
DTC:您认为一名优秀的数据库开发者应该具备什么样的技能,以及怎样的素质和素养?
周家晶:从我个人的经历来看,我认为最主要的技能是学习能力,必须的素质是好奇心、野心。回看14年很难想象我们会开发出一款分布式存储引擎,并能在MySQL Server上做一些有趣的工作。
DTC:目前您还会关注哪些新技术?给从事数据库方面的开发者一些学习建议吧。
周家晶:目前主要关注分布式内存数据库架构。对于开发者而言,进入一个新的领域最重要的永远是“Hello World!”,另外,需要考虑到数据库领域的积累周期相对比较漫长,所以如果坚定从事这个行业的同学,在研究过程中夯实理论基础也是必不可少的工作。当然兴趣是最好的导师,所以我建议尽早做一些有趣的编码工作。
采访记者:陈一宁(yining.chen@enmotech.com)
采访报道和演讲报名敬请联系